package com.bit.cfdi.web.services;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.DataAccessException;
import org.springframework.stereotype.Service;

import com.bit.cfdi.web.dao.UsuarioNegocioDAO;
import com.bit.cfdi.web.domain.DBConstants;
import com.bit.cfdi.web.domain.Negocio;
import com.bit.cfdi.web.domain.Usuario;
import com.bit.cfdi.web.domain.UsuarioNegocio;

@Service
public class UsuarioNegocioService {

	@Autowired UsuarioNegocioDAO usuarioNegocioDAO;
	
	public void save(final UsuarioNegocio usuarioNegocio) 
			throws DataAccessException {
		
		usuarioNegocioDAO.save(usuarioNegocio);
	}
	
	public void delete(final UsuarioNegocio usuarioNegocio) 
			throws DataAccessException {
		
		usuarioNegocio.setStatus(DBConstants.STATUS_DELETED);
		usuarioNegocioDAO.save(usuarioNegocio);
	}
	
	public List<UsuarioNegocio> getNegociosFromUsuario(final Usuario usuario) 
			throws DataAccessException{
		
		return usuarioNegocioDAO.getNegociosFromUsuario(usuario);
	}
	
	public List<UsuarioNegocio> getNegociosFromUsuario(final String email) 
			throws DataAccessException {
		
		return usuarioNegocioDAO.getNegociosFromUsuario(email);
	}
	
	public List<UsuarioNegocio> getUsuariosFromNegocio(final Negocio negocio) 
			throws DataAccessException {
		
		return usuarioNegocioDAO.getUsuariosFromNegocio(negocio);
	}
	
	public UsuarioNegocio getUsuarioNegocio(final Usuario usuario, 
			final Negocio negocio) throws DataAccessException {
		
		return usuarioNegocioDAO.getUsuarioNegocio(usuario, negocio);
	}
	
	public UsuarioNegocio getUsuarioNegocio(final Long idUsuarioNegocio) 
			throws DataAccessException {
		
		return usuarioNegocioDAO.getUsuarioNegocio(idUsuarioNegocio);
	}
	
}
